package com.wanxi.action;

import java.io.File;
import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;
import java.util.function.BiConsumer;

public class CountType {
    /**
     * 1.地址
     * 2.根据地址得到里面所有的文件和文件夹
     * 3.如果是文件夹，则需要进行递归遍历
     * 4.如果是文件，则取出文件名称，根据文件名称得到文件类型
     * 5.创建一个map，用于存 数据
     * 6.注意，转义字符 \\.
     * 7.map.getOrDefault(type, 0) + 1
     *
     */
    public static void main(String[] args) {
        String path = "E:\\wanxi\\step-2\\java02-0921\\day19file类";
        File file = new File(path);
        count(file);
        map.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String s, Integer integer) {
                System.out.println("type=" + s + " 次数=" + integer);
            }
        });
    }

    private static Map<String, Integer> map = new TreeMap<>();

    private static void count(File file) {

        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {

            if (files[i].isFile()) {
                String fileName = files[i].getName();
                System.out.println(fileName);
                String[] arr = fileName.split("\\.");
                String type = "默认";
                System.out.println(Arrays.toString(arr) + "----------");
                if (arr.length == 2) {
                    type = fileName.split("\\.")[1];
                }

                map.put(type, map.getOrDefault(type, 0) + 1);
            } else {
                count(files[i]);
            }
        }
    }
}
